package org.jeecg.modules.zcgl.vo.statistical;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.CommonConstant;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 尹涛 * @version V1.0.0
 * @projectName kangxiang-parent
 * @title AssetsParameterVo
 * @package org.jeecg.modules.zcgl.vo.statistical
 * @description 资产台账
 * @date 2021/6/7
 */
@Data
public class AssetsParameterVo {

    @Excel(name = "资产编码", width = 15)
    @ApiModelProperty(value = "资产编码")
    private String assetCode;

    @Excel(name = "资产名称", width = 15)
    @ApiModelProperty(value = "资产名称")
    private String assetName;

    @Excel(name = "资产类别", width = 15, dicCode = "zcgl_asset_classify")
    @Dict(dicCode = "zcgl_asset_classify")
    @ApiModelProperty(value = "资产类别")
    private String assetClass;

    @Excel(name = "管理单位",width = 15, orderNum = "25", dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "管理单位")
    private String managementUnitId ;

    @Excel(name = "产权单位", width = 15)
    @ApiModelProperty(value = "产权单位")
    private String propertyRightUnit;

    @Excel(name = "产权类型",width = 15, orderNum = "25", dicCode = "zcgl_land_authority_type")
    @Dict(dicCode = "zcgl_land_authority_type")
    @ApiModelProperty(value = "产权类型")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer landAuthorityType;

    @Excel(name = "产权地址", width = 15)
    @ApiModelProperty(value = "产权地址")
    private String addressPropertyDivision;

    @Excel(name = "产权面积", width = 15)
    @ApiModelProperty(value = "产权面积")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal propertyRightArea;

    @Excel(name = "资产区域", width = 15, dictTable = "zcgl_region", dicText = "region_name", dicCode = "id")
    @Dict(dictTable = "zcgl_region", dicText = "region_name", dicCode = "id")
    @ApiModelProperty(value = "资产区域")
    private String regionId;

    @Excel(name = "坐落位置", width = 15)
    @ApiModelProperty(value = "坐落位置")
    private String site;

    @Excel(name = "使用权人名称",width = 15, orderNum = "26")
    @ApiModelProperty(value = "使用权人名称")
    private String holderRightName;

    @Excel(name = "使用权证号",width = 15, orderNum = "26")
    @ApiModelProperty(value = "使用权证号")
    private String licenseNumber;

    @Excel(name = "管理员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "管理员")
    private String managerId;

    @Excel(name = "资产状态", width = 15, dicCode = "zcgl_asset_status")
    @Dict(dicCode = "zcgl_asset_status")
    @ApiModelProperty(value = "资产状态")
    private Integer status;

    @Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
    private String contractNum;

    @Excel(name = "承租人", width = 15, dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ';', `name`, phone )", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ' ', `name`, phone )", dicCode = "id")
    @ApiModelProperty(value = "承租人")
    private String customerId;

    @Excel(name = "身份证号/信用代码", width = 15)
    @ApiModelProperty(value = "身份证号/信用代码")
    private String code;

    @Excel(name = "出租面积", width = 15)
    @ApiModelProperty(value = "出租面积")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal rentableArea;

    @Excel(name = "出租方", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id", dicKey ="parent_id='" + CommonConstant.BASE_DEPART_ID + "'")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "出租方")
    private String rentCompanyId;

    @Excel(name = "经营状态", width = 15/*, dicCode = "zcgl_manage_status"*/)
    @ApiModelProperty(value = "经营状态")
    private String manageStatus;

    @Excel(name = "商户名称", width = 15)
    @ApiModelProperty(value = "商户名称")
    private String merchantName;

    @Excel(name = "租金单价", width = 15)
    @ApiModelProperty(value = "租金单价")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal rentPrice;

    @Excel(name = "月租金", width = 15)
    @ApiModelProperty(value = "月租金")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal monthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal cashDeposit;

    @Excel(name = "合同租金浮动比例", width = 15)
    @ApiModelProperty(value = "合同租金浮动比例")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal contractChangeRatio;

    @Excel(name = "起租时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime;

    @Excel(name = "到租时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime;

    @Excel(name = "合同期限", width = 15)
    @ApiModelProperty(value = "合同期限")
    private String contractPeriod;

    @Excel(name = "租金支付方式", width = 15, dicCode = "zcgl_lease_contract_paymenttype")
    @Dict(dicCode = "zcgl_lease_contract_paymenttype")
    @ApiModelProperty(value = "租金支付方式")
    private Integer modeOfPayment;

    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String phone;

    @Excel(name = "价值（万元）", width = 15)
    @ApiModelProperty(value = "价值（万元）")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal worth;

    @Excel(name = "空置原因", width = 15)
    @ApiModelProperty(value = "空置原因")
    private String emptyReason;

    @Excel(name = "具体问题", width = 15)
    @ApiModelProperty(value = "具体问题")
    private String concreteIssue;

    @Excel(name = "原管理单位", width = 15)
    @ApiModelProperty(value = "原管理单位")
    private String originalManagementUnit;

    @Excel(name = "原产权单位", width = 15)
    @ApiModelProperty(value = "原产权单位")
    private String originalPropertyRightUnit;

    @Excel(name = "批复文号", width = 15)
    @ApiModelProperty(value = "批复文号")
    private String approvalDocumentNumber;

    @Excel(name = "调拔时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "调拔时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date pullTime;

    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;

    //查询参数
    private String selections;
}
